/* 网络监听

    对外输出当前网络的通断状态，并支持回调函数
*/
import { ref, onMounted, onUnmounted } from "vue";

const useNetwork = ({ success, fail }) => {
	const lineStatus = ref(0);

	const UpdatLine = () => {
		if (navigator.onLine) {
			lineStatus.value = 1;
			console.log("网络已连接");

			if (success) {
				success();
			}
		} else {
			lineStatus.value = 0;
			console.log("网络断开");

			if (fail) {
				fail();
			}
		}
	};

	onMounted(() => {
		window.addEventListener("online", UpdatLine);
		window.addEventListener("offline", UpdatLine);

		// 主动检查一次网络状态
		UpdatLine();
	});

	onUnmounted(() => {
		window.removeEventListener("online", UpdatLine);
		window.removeEventListener("offline", UpdatLine);
	});

	return {
		lineStatus,
	};
};

export default useNetwork;
